package com.huang.wishstar.generator;

/**
 * @filename: MyGenerator.java 2019-10-16
 * @project v0.0.1  V1.0
 * Copyright(c) 2018 BianPeng Co. Ltd.
 * All right reserved.
 */

import java.sql.SQLException;
import java.util.Date;

import com.gitee.flying.cattle.mdg.entity.BasisInfo;
import com.gitee.flying.cattle.mdg.util.EntityInfoUtil;
import com.gitee.flying.cattle.mdg.util.Generator;
import com.gitee.flying.cattle.mdg.util.MySqlToJavaUtil;
/**
 * Copyright: Copyright (c) 2019
 *
 * <p>说明： 自动生成工具</P>
 * <p>源码地址：https://gitee.com/flying-cattle/mybatis-dsc-generator</P>
 */
public class MyGenerator {
    // 基础信息：项目名、作者、版本
    public static final String PROJECT = "WishStar";
    public static final String AUTHOR = "huang";
    public static final String VERSION = "V1.0";
    // 数据库连接信息：连接URL、用户名、秘密、数据库名
    public static final String URL = "jdbc:mysql://8.136.195.245:4690/WishStar?useSSL=false&serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8";
    public static final String NAME = "developer";
    public static final String PASS = "hmx123?!asd456jkl";//ENC(J7+TRj23MJKzMbuEXKviJT1GSzAJDu7X4dgm/wM2YuE=)
    public static final String DATABASE = "WishStar";
    // 类信息：类名、对象名（一般是【类名】的首字母小写）、类说明、时间
//    public static final String CLASSNAME = "Habit";
//    public static final String TABLE = "habit";
//    public static final String CLASSCOMMENT = "习惯表";
/*   管理员表，测试使用*/
//    public static final String CLASSNAME = "Admin";
//    public static final String TABLE = "admin";
//    public static final String CLASSCOMMENT = "管理员表";
    /*  wish表*/
    public static final String CLASSNAME = "Wish";
    public static final String TABLE = "wish";
    public static final String CLASSCOMMENT = "愿望表";
/*验证码表*/
//    public static final String CLASSNAME = "Checkcode";
//    public static final String TABLE = "checkcode";
//    public static final String CLASSCOMMENT = "验证码表";

    public static final String TIME = "2021年9月14日";
    public static final String AGILE = new Date().getTime() + "";


    // 路径信息，分开路径方便聚合工程项目，微服务项目
    public static final String ENTITY_URL = "com.huang.wishstar.entity";
    public static final String DAO_URL = "com.huang.wishstar.mapper";
    public static final String XML_URL = "com.huang.wishstar.mapper.xml";
    public static final String SERVICE_URL = "com.huang.wishstar.service";
    public static final String SERVICE_IMPL_URL = "com.huang.wishstar.service.impl";
    public static final String CONTROLLER_URL = "com.huang.wishstar.controller";
    //是否是Swagger配置
    public static final String IS_SWAGGER = "true";

    public static void main(String[] args) {
        BasisInfo bi = new BasisInfo(PROJECT, AUTHOR, VERSION, URL, NAME, PASS, DATABASE, TIME, AGILE, ENTITY_URL,
                DAO_URL, XML_URL, SERVICE_URL, SERVICE_IMPL_URL, CONTROLLER_URL,IS_SWAGGER);
        bi.setTable(TABLE);
        bi.setEntityName(MySqlToJavaUtil.getClassName(TABLE));
        bi.setObjectName(MySqlToJavaUtil.changeToJavaFiled(TABLE));
        bi.setEntityComment(CLASSCOMMENT);
        try {
            bi = EntityInfoUtil.getInfo(bi);
//            String fileUrl = "E:\\";// 生成文件存放位置
            String fileUrl = System.getProperty("user.dir")+"/src/main/java/";//当前目录下
            //开始生成文件
            String aa1 = Generator.createEntity(fileUrl, bi).toString();
            String aa2 = Generator.createDao(fileUrl, bi).toString().replace("Dao","Mapper");
            String aa3 = Generator.createDaoImpl(fileUrl, bi).toString();
            String aa4 = Generator.createService(fileUrl, bi).toString();
            String aa5 = Generator.createServiceImpl(fileUrl, bi).toString();
            String aa6 = Generator.createController(fileUrl, bi).toString();
            // 是否创建swagger配置文件
            String aa7 = Generator.createSwaggerConfig(fileUrl, bi).toString();//不过本项目生成的swagger都有问题

            System.out.println(aa1);
            System.out.println(aa2); System.out.println(aa3); System.out.println(aa4);
            System.out.println(aa5); System.out.println(aa6); System.out.println(aa7);
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}
